package org.javaboy.demo;

import org.javaboy.demo.merchant.RoleService;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Demo03 {
    public static void main(String[] args) {
        ClassPathXmlApplicationContext parent = new ClassPathXmlApplicationContext("merchant_beans.xml");
        ClassPathXmlApplicationContext child = new ClassPathXmlApplicationContext("consumer_beans.xml");
        child.setParent(parent);
        child.refresh();
        //在子容器中，就可以访问到父容器的 bean，这一步类似于在 SSM 中，Controller 中注入 Service
        //一般情况下，我们用到的大部分的 Bean 的查询方法，都是只是父子容器查询的
        org.javaboy.demo.merchant.RoleService rs1 = child.getBean(org.javaboy.demo.merchant.RoleService.class);
        System.out.println("rs1 = " + rs1);
        org.javaboy.consumer.RoleService rs2 = child.getBean(org.javaboy.consumer.RoleService.class);
        System.out.println("rs2 = " + rs2);
        //下面这个方法是为数不多的不支持去 parent 查找 bean 的方法
        String[] names = child.getBeanNamesForType(org.javaboy.consumer.RoleService.class);
        for (String name : names) {
            System.out.println("name = " + name);
        }
    }
}
